﻿/// <reference path="jquery.js" />
jQuery(document).ready(function () {
    //加载类别信息
    loadCategory();
    //标题文本框样式
    if ($('input#post_title').val()) {
        $('.title .text-tip').hide();
        if (!$('#post_slug').val()) {
            $('#post_slug').val($('input#post_title').val());
            $('#edit-slug-box').text($('input#post_title').val()).show();
        }
    }
    $('input#post_title').focus(function () {
        $(this).prev('.text-tip').hide(50);
    });
    $('input#post_title').blur(function () {
        if ($(this).val()) {
            $('div.edit-slug-box').fadeIn(500);
            $('#edit-slug-box').text(($(this).val()).replace(/\s+/g, '-'));
            $('#post_slug').val(($(this).val()).replace(/\s+/g, '-'));
        } else {
            $(this).prev('.text-tip').show(50);
        }
    });

    //固定连接编辑框
    $('#edit-slug-box').click(function () {
        $('#edit-slug-box').hide();
        $('#post_slug').show();
        $('#edit-slug-button').text('确定');
    });
    $('#edit-slug-button').click(function () {
        if ($(this).text() == '编辑') {
            $('#edit-slug-box').hide();
            $('#post_slug').show();
            $(this).text('确定');
        } else {
            $('#post_slug').hide();
            $('#edit-slug-box').text(($(this).val()).replace(/\s+/g, '-'));
            $('#post_slug').val(($(this).val()).replace(/\s+/g, '-'));
            $('#edit-slug-box').text($('#post_slug').val()).show();
            $(this).text('编辑');
        }
    });
    $('#post_slug').blur(function () {
        $(this).hide();
        $('#edit-slug-box').text(($(this).val()).replace(/\s+/g, '-'));
        $('#post_slug').val(($(this).val()).replace(/\s+/g, '-'));
        $('#edit-slug-box').text($(this).val()).show();
        $('#edit-slug-button').text('编辑');
    });

    //添加媒体按钮
    $('.add_media').click(function () {
        return $EDITORUI["edui127"]._onClick();
    });

    //功能块显示隐藏
    $('.showdiv').click(function () {
        $(this).toggleClass('hidediv').next('div.inside').slideToggle();
    });

    //排序布局
    $('#side-sortables, #advanced-sortables,#normal-sortables ').sortable({
        sort: function (event, ui) { $('.ui-state-placeholder').css('height', $('.ui-sortable-helper').height()); },
        placeholder: 'ui-state-placeholder',
        connectWith: '.meta-box-sortables',
        cancel: "div.inside",
        //opacity: 0.6, //设置拖动时候的透明度 
        //revert: true, //缓冲效果 
        //cursor: 'move', //拖动的时候鼠标样式 
        //handle: '.m_title',  //可以拖动的部位，模块的标题部分 
        update: function () {
            //alert("ok");
        }
    }).enableSelection();//disableSelection();

    //预览按钮
    $('#preview-btn').click(function () {
        return $EDITORUI["edui201"]._onClick();
    });

    //发布操作;
    $('#post_status').change(function () {
        if ($('#post_status :selected').val() == '1') {
            $('.post-password-span').show();
        } else {
            $('.post-password-span').hide();
        }
    });
    $('#show-status').click(function () {
        hidePubDate();
        $(this).hide().next('.option-info').slideDown(200);
    });
    $('#hide-status').click(function () {
        hideStatus();
    });
    $('#show-pubdate').click(function () {
        if (hideStatus()) {
            $(this).hide().next('.option-info').slideDown(200);
        } else {
            $('#show-status').hide().next('.option-info').slideDown(200);
        }
    });
    $('#hide-pubdate').click(function () {
        hidePubDate();
    });
    $('.hide').click(function () {
        $(this).parent().slideUp(200).prev('a').show();
    });

    //发布日期效果
    var date = new Date();
    var yyyy = date.getFullYear();
    var m = date.getMonth() + 1;
    var mm = (m < 10) ? '0' + m : m;
    var d = date.getDate();
    var dd = (d < 10) ? '0' + d : d;
    $('#post_pubdate').val(yyyy + '-' + mm + '-' + dd).datePicker({
        followOffset: [0, 24]
        , altFormat: 'yyyy-mm-dd'
    });

    $('#show-settings-link').click(function () {
        //$(this).toggleClass('hide-settings');
        if ($('#screen-meta-option').attr('style') == 'display: block;') {
            $(this).removeClass('hide-settings');
            $('#screen-meta-option').slideUp(500);
        } else {
            $(this).addClass('hide-settings');
            $('#screen-meta-option').slideDown(800).load('../includes/edit-option.html');
        }
    });

    //增加标签
    $('#btnTagAdd').click(function () {
        var arr = $('#txtTagAdd').val().split(/[,\.]/);
        for (var i = 0; i < arr.length; i++) {
            if (!arr[i].trim()) { continue; }
            if ($('#tagchecklist').text().match(arr[i].trim()))
                return;
            $('#tagchecklist').append('<span><a class="btnTagDelete" onclick="deleteTag(this);">X</a>&nbsp;' + arr[i].trim() + '</span>').fadeIn(100);
            //给隐藏域赋值;
            if ($('#post_tag').val()) {
                $('#post_tag').val($('#post_tag').val() + ',' + arr[i].trim());
            } else {
                $('#post_tag').val(arr[i].trim());
            }
        }
        $('#txtTagAdd').val('')
    });

    //异步请求标签信息
    $('#btnLoadTagList').click(function () {
        $('#taglist').empty();
        $.get('handler/post-ajax.ashx', { action: 'loadtaglist' }, function (data) {
            var tagList = $.parseJSON(data);
            var format = '<a class="tag-link-{0}" title="{1} 个话题" style="font-size: {2}pt;">{3}</a>';
            for (var i = 0; i < tagList.length; i++) {
                if (tagList[i].Count > 0) {
                    var randomNum = Math.ceil(Math.random() * 20);
                    $('#taglist').append(format.replace('{0}', tagList[i].Id).replace('{1}', tagList[i].Count).replace('{2}', randomNum < 8 ? 10 : randomNum).replace('{3}', tagList[i].Name));
                }
            }
            $('#taglist').fadeIn();
            $('#taglist a').click(function () {
                if ($('#tagchecklist').text().match($(this).text()))
                    return;
                $('#tagchecklist').append('<span><a class="btnTagDelete" onclick="deleteTag(this);">X</a>&nbsp;' + $(this).text() + '</span>').fadeIn(100);
                //给隐藏域赋值;
                if ($('#post_tag').val()) {
                    $('#post_tag').val($('#post_tag').val() + ',' + $(this).text());
                } else {
                    $('#post_tag').val($(this).text());
                }
            });
        });
    });

    //异步发布事件
    $('#btn-publish').click(function () {
        publish('文章已发布。', $('#post_status').val() == 'top' ? 0 : $('#post_status').val());
        $('#pub-log').text('手动发布于：' + new Date().toLocaleString());
    });

    //异步保存草稿
    $('#publish-draft').click(function () {
        publish('保存成功。', 4);
        $('#pub-log').text('手动保存于：' + new Date().toLocaleString());//自动保存于 : 2013-04-07 17:46:56
    });

    //自动保存
    //setInterval(function () {
    //    publish('保存成功。', 5);
    //    $('#pub-log').text('自动保存于：' + new Date().toLocaleString());
    //}, 10000);
});

//提示消息函数
function showMsg(message) {
    //启用发布按钮
    $('.button').removeAttr('disabled');
    $('.spinner').fadeOut();
    //提示消息
    $('#message').empty().append(message).fadeIn();
    setTimeout(function () {
        $('#message').fadeOut(500);
    }, 20000);
}

//异步请求类别信息
function loadCategory() {
    $.get('handler/post-ajax.ashx', { action: 'loadcategorylist' }, function (data) {
        $('#category-list').append(data);
        //类别管理
        $('input.post-category').change(function () {
            var arr = $('input.post-category:checked');
            var ids = new Array();
            for (var i = 0; i < arr.length; i++) {
                ids[ids.length] = $(arr[i]).val();
            }
            $('input#post_category').val(ids);
        });
    });
}

//隐藏状态框
function hideStatus() {
    if ($('#post_status :selected').val() == '1' && ($('#post_password').val() == '' || $('#post_password').val() == '请输入密码!')) {
        $('#post_password').val('请输入密码!');
        return false;
    } else if ($('#post_status :selected').val() != '1') {
        $('#post_password').val('');
        $('#post-status-show').text($('#post_status :selected').text()).next('a').show().next('.option-info').slideUp(200);
        return true;
    } else {
        $('#post-status-show').text($('#post_status :selected').text()).next('a').show().next('.option-info').slideUp(200);
        return true;
    }
}

//隐藏日期文本框
function hidePubDate() {
    var date = new Date();
    var yyyy = date.getFullYear();
    var m = date.getMonth() + 1;
    var mm = (m < 10) ? '0' + m : m;
    var d = date.getDate();
    var dd = (d < 10) ? '0' + d : d;
    var txtDate = $('#post_pubdate').val()
    var date = txtDate != '' && txtDate != yyyy + '-' + mm + '-' + dd ? '@' + $('#post_pubdate').val() : '立即';
    $('#timestamp').text(date).next('a').show().next('.option-info').slideUp(200);
}

//删除标签
function deleteTag(e) {
    //$('#post_tag').val($('#post_tag').val().replace($(this).parent().text().replace('X','').trim(), '').replace('||','|'));
    var tag = $(e).parent().text().replace('X', '').trim();
    var oldStr = $('#post_tag').val().split(',');
    $('#post_tag').val('');
    //重新给隐藏域赋值;
    for (var i = 0; i < oldStr.length; i++) {
        if (tag != oldStr[i]) {
            if ($('#post_tag').val()) {
                $('#post_tag').val($('#post_tag').val() + ',' + oldStr[i]);
            } else {
                $('#post_tag').val(oldStr[i]);
            }
        }
    }
    $(e).parent().remove();
}

//发布函数
function publish(successMsg, status) {
    //调用添加标签事件, 防止用户没有点击添加 直接发布
    if ($('#post_tag-txt').val()) {
        $('#post_tag_add').click();
    }

    $('.button').attr('disabled', true);
    $('.spinner').fadeIn();

    var post_slug = $('#post_slug').val();
    var post_title = $('#post_title').val();
    if (!post_title && status != 5) {
        showMsg('<p style="color:red;">请填写文章标题。</p>');
        return false;
    }
    var post_pubdate = $('#post_pubdate').val();
    var post_update = $('#post_update').val();
    var post_content = UE.getEditor('post_content').getContent();
    var post_excerpt = $('#post_excerpt').val();
    var post_template = $('#post_template').val();
    var post_auther_id = $('#post_auther_id').val();
    var post_comment_status = $('#post_comment_status').val();
    var post_status = status;//$('#post_status').val() == 'top' ? 0 : $('#post_status').val();
    var post_type = $('#post_type').val();
    var post_istop = $('#post_status').val() == 'top' ? true : false;
    var post_ping_status = $('#post_ping_status').val();
    var post_password = $('#post_password').val();
    var post_tag = $('#post_tag').val();
    var post_category = $('#post_category').val();
    $.ajax({
        url: 'handler/post-ajax.ashx?action=publish',
        type: 'post',
        contentType: "application/x-www-form-urlencoded",
        data: {
            post_slug: post_slug,
            post_title: post_title,
            post_pubdate: post_pubdate,
            post_update: post_update,
            post_content: post_content,
            post_excerpt: post_excerpt,
            post_template: post_template,
            post_auther_id: post_auther_id,
            post_comment_status: post_comment_status,
            post_status: post_status,
            post_type: post_type,
            post_istop: post_istop,
            post_ping_status: post_ping_status,
            post_password: post_password,
            post_tag: post_tag,
            post_category: post_category
        },
        success: function (res) {
            $('.button').removeAttr('disabled');
            $('.spinner').fadeOut();
            var arrInfo = res.split('&');
            if (status == 5) { return false; }
            if (arrInfo[0] == 'success') {
                showMsg('<p>' + successMsg + '<a href="' + arrInfo[1] + '">查看文章</a></p>');
            } else {
                showMsg('<p style="color:red;">文章发布失败。</p><p>' + res + '</p>');
            }
        },
        error: function (XMLHttpRequerst) {
            showMsg(XMLHttpRequerst.responseText);
        }
    });
}